try! Swift recap! 1st day AM #tryswiftconf
Notice
This is a translated version of the article below written by Jun Kato. I translated the article. Because I'm not a bilingual, it may contain mistranslations. It will be good if you can feel atmosphere of try!Swift :)
Our repors
Translated versions (still on the way to translate!)
- try!Swift recap! 1st day PM #tryswiftconf
- try!Swift recap! 2nd day AM #tryswiftconf
- try!Swift recap! 2nd day PM #tryswiftconf
- try!Swift recap! 3rd day AM #tryswiftconf
- try!Swift recap! 3rd day PM #tryswiftconf
Original Japanese versions
- try! Swift 最速レポート 1日目午後
- try! Swift 最速レポート 2日目午前
- try! Swift 最速レポート 2日目午後
- try! Swift 最速レポート 3日目午前
- try! Swift 最速レポート 3日目午後
try! Swift A fastest report for 1st day
Hi! It's Jun Kato. I'm at try! Swift - a huge conference of/for the Swift developers! This event's purpose is to gather at one place and share knowledges and tech skills. It will be 3-days event. Developers.IO (this blog) will deliver articles of this event! Let's get started!!
Contents
- Breakfast
- Opening Announcements
- Dive into Swift Ecosystem
- Practical Cross-Platform Swift
- Learning to Read Again
- ?(Apple TV)
- Keep Calm and Type Erase On
- Lunch
Breakfast
I could eat a fashionable cookie!
Opening Announcements
- There was an explanation of a meeting place and simultaneous translation by a staff of CYBER AGENT. The event was held at the hall at CYBER AGENT.
- Kishikawa (Realm) explained about this conference and a notices during the sessions.
- It was 3-days-event and there were 33 sessions, and 26 26 sessions by speaker from overseas.
- Simultaneous translation is served: Japanese and English.
Dive into Swift Ecosystem
Presented by Syo Ikeda
Material
Report
- Swift became an open source language 3 months ago. There are about 1500 pull requests so far.
- Services around Swift.
- IBM Swift Sandbox
- paiza.IO
- Heroku with Buildpacks
- Swift@IBM
- OpenWhisk
- SwiftDoc.org
- CocoaDocs
- CI
- Code Coverage
- Codecov
- HoundCI
- Development toolw around Swift
- Carthage
- CocoaPods
- Swift Package Manager
- SourceKitten
- SwiftLInt
- jazzy
- SourceKittenDaemon
- Buildasaur
- XcodeServerSDK
- SwiftGen
- R.swift
- Quick
- Spectre
- Contributing to the services and tools
- Try to use tool and services if you're interested in.
- Give Stars your favorites at GitHub - Developers will be delighted!
- It's better to report bugs with logs and how to reproduce the situation.
- You will be able to answer the questions from others while you're accostomed to use services and tools.
- Let's try to send pull requests!
- It's good to fix typo and mistranslation.
Q&A
- Are there any libraries you want to contribute?
- I want to contribute to Apple's Swift and foundation.
- Is SourceKittenDaemon already packaged?
- There is a sample to complete codes using SourceKittenDaemon at GitHub repository.
- Which of the package managers will survive?
- I think Swift Package Manager will survive in the end.
Practical Cross-Platform Swift
Presented by JP Simard
Material
Report
- Development Environment of Swift
- XCODE
- XCODE + TOOLCHAIN
- DOCKER + CLI + EDITOR
- Swift Package Manager
- It's recommended in case of cross-platform development.
- There are cases of errors when you run Swift code on Linux even though the code looks like a "pure Swift."
- You need to check whether runtime libraries of Objective-C are used or not.
- About Test
- SPM TESTING
- CI
- TRAVIS CI(CI configurations on Linux)
Q&A
- Which part of Result library's casts are depending on runtime libraries of Objective-C?
- I don't know (LOL). I'm working on debug.
Learning to Read Again
Presented by Laura Savino
Report
- Learn how to code means learining a new language.
- It will be easier to learn 3rd language if you learn 2nd one.
- What's readble code?
- You need to think about readers - who they are.
- Important code must be easy to understand.
- Admiting you can't understand the code is almost the same thing as you can't work.
- About working memory
- About chunking
- The energy is needed to decipher
- How to code?
- Do not use slangs.
- Do not omit necessary information.
- Use patterns to variable names.
- I want you to write the code which can be read without making them decipher.
?(Apple TV)
Presented by Boris Bügling
Report
- About tvOS
- The future of TV is apps (and iOS)
- Difference between iOS and tvOS
- WEBKIT
- OAuth can't be used in tvOS.
- The capacity of storage is limited on tvOS
- Porting existing apps
- Cocoapods 0.39.0 supports tvOS
- Nib can't be used on tvOS.
- Protocols on updating focuses.
- How to debug when objects are not focused?
- HANDOFF is not supported.
- Siri Remote as a game controller.
- TVML
- TVML's use case: catalogue apps.
- It will be nice if you know UIKit.
Keep Calm and Type Erase On
Presented by Gwendolyn Weston
Report
- What's "type?"
- Type is a classification. Types define the set of values and effective operations for the values.
- Concrete types and Abstract types
- Make a wrapper class to avoid compile error that occurs when protocol-related-types are abstract.
- Sample code is here!(Pokemon!! An attack name
スピードスター
in Japanese original version would beSwift
in English!) - The information of types are erased as a side-effect (
Pikachu
andRaichu
in a sample code)
- Sample code is here!(Pokemon!! An attack name
- Type erasure is a kind of design pattern.
- Swift doesn't support covariance of codes
Lunch
Lunch boxes! I ate a lunch box containing a hamburger!
Tokihiko Tamiya will report this afternoon!